<?php

App::uses('AppController', 'Controller');

/**
 * Users Controller
 *
 * @property User $User
 * @property PaginatorComponent $Paginator
 */
class ClientesController extends AppController {

    public $layout = 'recargas';
    public $uses = array('Pedido', 'Parametro','User','Dosificacione','Facturacione','Cliente','Recarga');
    /**
     * Components
     *
     * @var array
     */
    public $components = array('Paginator','Codigocontrol','Enletras');

    /**
     * index method
     *
     * @return void
     */
    public function index() {
        
        $idUsuario = $this->Session->read('Auth.User.id');
       
        /*$recargas = $this->Pedido->find('all',array('recursive' => -1,'conditions' => 
        array(
        'Pedido.user_id' => $idUsuario
        ,'date(Pedido.created)' => date('Y-m-d')
        )
        ));*/
        $recargas = $this->Recarga->find('all',array('recursive' => 0,'order' => 'Recarga.id DESC','limit' => 30,'conditions' => array('Recarga.user_id' => $idUsuario)));
        //debug($recargas);exit;
        $this->set(compact('recargas'));
    }
    
    public function factura()
    {
        $datos_dosificacion = $this->Dosificacione->find('first',array('order' => 'Dosificacione.id DESC'));
        $autorizacion = $datos_dosificacion['Dosificacione']['numero_autorizacion'];
        $numero_factura = '00005';
        $nit = $this->Session->read('Auth.User.nit_ci');
        $fecha =date('Ymd');
        $monto = (integer)$this->Session->read('Auth.User.monto_tmp');
        $idUsuario = $this->Session->read('Auth.User.id');
        $llave = $datos_dosificacion['Dosificacione']['llave_dosificacion'];
        $codigo_control = $this->Codigocontrol->generar($autorizacion,$numero_factura,$nit,$fecha,$monto,$llave);
        $monto_letras = $this->Enletras->ValorEnLetras($monto,'Bs');
        /*debug($monto_letras);
        debug($nit);
        debug($codigo_control);exit;*/
        $this->Facturacione->create();
        $this->request->data['Facturacione']['codigo_control'] = $codigo_control;
        $this->request->data['Facturacione']['llave_dosificacion'] = $llave;
        $this->request->data['Facturacione']['numero_autorizacion'] = $autorizacion;
        $this->request->data['Facturacione']['numero_factura'] = $numero_factura;
        $this->request->data['Facturacione']['nit_ci_cliente'] = $nit;
        $this->request->data['Facturacione']['fecha_transaccion'] = $fecha;
        $this->request->data['Facturacione']['monto_transaccion'] = $monto;
        $this->request->data['Facturacione']['user_id'] = $idUsuario;
        $this->Facturacione->save($this->request->data);
        
        $this->set(compact('numero_factura','nit','monto','autorizacion','monto_letras'));
    }
    
    public function recargar()
    {
        //debug($this->request->data);exit;
        $usuario = $this->User->find('first',array('recursive' => -1,'conditions' => array('User.id' => $this->Session->read('Auth.User.id'))));
        $ultimafactura = $this->Facturacione->find('first',array(
        'recursive' => -1
        ,'order' => 'Facturacione.id DESC'
        ));
        if(!empty($this->request->data))
        {
            if(!empty($ultimafactura))
            {
                $numero_factura = $ultimafactura['Facturacione']['numero_factura'] + 1;
            }
            else{
                $numero_factura = 1;
            }
            $nombre_cliente = $this->request->data['Cliente']['nombre'];
            $datos_dosificacion = $this->Dosificacione->find('first',array('order' => 'Dosificacione.id DESC'));
            $autorizacion = $datos_dosificacion['Dosificacione']['numero_autorizacion'];
            $nit = $this->request->data['Cliente']['nit'];
            $fecha = date('Ymd');
            $monto_decimales = $this->request->data['Cliente']['monto_recarga'];
            $monto = (integer)$this->request->data['Cliente']['monto_recarga'];
            $idUsuario = $usuario['User']['id'];
            $llave = $datos_dosificacion['Dosificacione']['llave_dosificacion'];
            $codigo_control = $this->Codigocontrol->generar($autorizacion,$numero_factura,$nit,$fecha,$monto,$llave);
            /*debug($autorizacion);
            debug($numero_factura);
            debug($nit);
            debug($fecha);
            debug($monto);
            debug($llave);
            debug($this->Codigocontrol->generar('29040011007',1503,4189179011,20070702,2500,'9rCB7Sv4X29d)5k7N%3ab89p-3(5[A'));*/
            //debug($this->Codigocontrolnuevo->generanuevo('29040011007',1503,4189179011,20070702,2500,'9rCB7Sv4X29d)5k7N%3ab89p-3(5[A'));
            //debug($codigo_control);exit;
            $monto_letras = $this->Enletras->ValorEnLetras($monto_decimales,'Bs');
            
            $this->Facturacione->create();
            $this->request->data['Facturacione']['nombre_cliente'] = $nombre_cliente;
            $this->request->data['Facturacione']['codigo_control'] = $codigo_control;
            $this->request->data['Facturacione']['llave_dosificacion'] = $llave;
            $this->request->data['Facturacione']['numero_autorizacion'] = $autorizacion;
            $this->request->data['Facturacione']['numero_factura'] = $numero_factura;
            $this->request->data['Facturacione']['nit_ci_cliente'] = $nit;
            $this->request->data['Facturacione']['fecha_transaccion'] = $fecha;
            $this->request->data['Facturacione']['monto_transaccion'] = $monto_decimales;
            $this->request->data['Facturacione']['user_id'] = $idUsuario;
            $this->Facturacione->save($this->request->data);
            $idFacturacion = $this->Facturacione->getLastInsertID();
            
            $verifica = $this->Cliente->find('first',array('recursive' => -1,'conditions' => array('Cliente.nit' => $this->request->data['Cliente']['nit'])));
            
            if($this->request->data['Cliente']['monto_recarga'] <= $usuario['User']['monto_tmp'])
            {
                if(!empty($verifica))
                {
                    $this->Recarga->create();
                    $this->request->data['Recarga']['monto'] = $this->request->data['Cliente']['monto_recarga'];
                    $this->request->data['Recarga']['cliente_id'] = $verifica['Cliente']['id'];
                    $this->request->data['Recarga']['user_id'] = $this->Session->read('Auth.User.id');
                    $this->request->data['Recarga']['facturacione_id'] = $idFacturacion;
                    $this->Recarga->save($this->request->data);
                    
                    $this->User->id = $usuario['User']['id'];
                    $this->request->data['User']['monto_tmp'] = $usuario['User']['monto_tmp'] - $this->request->data['Cliente']['monto_recarga'];
                    $this->User->save($this->request->data);
                }
                else{
                    
                    $this->Cliente->create();
                    $this->Cliente->save($this->request->data);
                    $idCliente = $this->Cliente->getLastInsertID();
                    
                    
                    $this->Recarga->create();
                    $this->request->data['Recarga']['monto'] = $this->request->data['Cliente']['monto_recarga'];
                    $this->request->data['Recarga']['cliente_id'] = $idCliente;
                    $this->request->data['Recarga']['user_id'] = $this->Session->read('Auth.User.id');
                    $this->request->data['Recarga']['facturacione_id'] = $idFacturacion;
                    $this->Recarga->save($this->request->data);
                    
                    $this->User->id = $usuario['User']['id'];
                    $this->request->data['User']['monto_tmp'] = $usuario['User']['monto_tmp'] - $this->request->data['Cliente']['monto_recarga'];
                    $this->User->save($this->request->data);
                }
            }
            else{
                $this->Session->setFlash('No se puede!!!','msgerror');
                $this->redirect(array('action' => 'index'));
            }
            
            
            
            
            $this->Session->setFlash('Se Registro correctamente!!!','msgbueno');
            //$this->redirect(array('action' => 'recargar'));
            
            
        }
        else{
            $this->Session->setFlash('No se puede!!!','msgerror');
            $this->redirect(array('action' => 'index'));
        }
        //debug($monto_decimales);exit;
        $this->set(compact('numero_factura','nit','monto','monto_decimales','autorizacion','monto_letras','nombre_cliente','codigo_control'));
    }
    public function detalle($idRecarga = null)
    {
        $this->layout = 'ajax';
        $recarga = $this->Recarga->find('first' , array('recursive' => 0,'conditions' => array('Recarga.id' => $idRecarga)));
        
        $nombre_cliente = $recarga['Cliente']['nombre'];
        $autorizacion = $recarga['Facturacione']['numero_autorizacion'];
        $numero_factura = $recarga['Facturacione']['numero_factura'];
        $nit = $recarga['Cliente']['nit'];
        $fecha =$recarga['Recarga']['created'];
        $monto = $recarga['Recarga']['monto'];
        $monto_letras = $this->Enletras->ValorEnLetras($monto,'Bs');
        
        $this->set(compact('numero_factura','nit','monto','autorizacion','monto_letras','nombre_cliente'));
    }
    public function modalrecargar()
    {
        $this->layout = 'ajax';
    }

}